From b304702a73017e34bf64c974dfff9b5cd9f258de Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 21 Jan 2010 11:27:11 +0000 Subject: [PATCH] tools: fix sysfs error path Attached patch fixes sysfs error path. NetBSD also has a /proc/mounts file but no sysfs. On Linux you can test this with sysfs not mounted. Signed-off-by: Christoph Egger --- tools/python/xen/util/pci.py | 2 ++ tools/python/xen/util/utils.py | 4 +++- tools/python/xen/util/vscsi_util.py | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/tools/python/xen/util/pci.py b/tools/python/xen/util/pci.py index 35c804495c..6aac0b5ba7 100644 --- a/tools/python/xen/util/pci.py +++ b/tools/python/xen/util/pci.py @@ -441,6 +441,8 @@ def find_sysfs_mnt(): def get_all_pci_names(): sysfs_mnt = find_sysfs_mnt() + if sysfs_mnt is None: + return None pci_names = os.popen('ls ' + sysfs_mnt + SYSFS_PCI_DEVS_PATH).read().split() return pci_names diff --git a/tools/python/xen/util/utils.py b/tools/python/xen/util/utils.py index 6d0c5ab8cb..6be3e8e202 100644 --- a/tools/python/xen/util/utils.py +++ b/tools/python/xen/util/utils.py @@ -68,7 +68,9 @@ def find_sysfs_mount(): continue if sline[2] == 'sysfs': sysfs_mount_point= sline[1] - return sysfs_mount_point + break + mounts_file.close() + return sysfs_mount_point except IOError, (errno, strerr): raise diff --git a/tools/python/xen/util/vscsi_util.py b/tools/python/xen/util/vscsi_util.py index 8b26117fca..15719782fa 100644 --- a/tools/python/xen/util/vscsi_util.py +++ b/tools/python/xen/util/vscsi_util.py @@ -123,6 +123,9 @@ def _vscsi_get_scsidevices_by_sysfs(): except: return devices + if sysfs_mnt is None: + return devices + for dirpath, dirnames, files in os.walk(sysfs_mnt + SYSFS_SCSI_PATH): for hctl in dirnames: paths = os.path.join(dirpath, hctl) -- 2.30.2